#ifndef FFPLAYER_FVIDEO_H
#define FFPLAYER_FVIDEO_H

#include "FMedia.h"
#include "FAudio.h"
#include <android/native_window_jni.h>

extern "C" {

// rgb 转换上下文
#include <libswscale/swscale.h>
#include <libavutil/time.h>
#include <unistd.h>

void *playVideo(void *);

class FVideo : public FMedia {

public:
    FVideo();

    ~FVideo();

    // 设置解码上下文
    void setCodecContext(AVCodecContext *codecContext, int stream_idx);

    // 设置绘制的窗体
    void setANativeWindow(ANativeWindow *window);

    // 播放视频
    int play();

    // 停止播放
    void stop();

    // 释放资源
    void release();

    // 修正播放时间
    double synchronize(AVFrame *frame, double play_ts);

public:
    SwsContext *sws_ctx;
    ANativeWindow *window;
    FAudio *fAudio;
};
};

#endif //FFPLAYER_FVIDEO_H
